A Type Graph Model for Java Programs
نویسندگان
چکیده
In this work we present a type graph that models all executable constructs of the Java programming language. Such a model is useful for any graph-based technique that relies on a representation of Java programs as graphs. The model can be regarded as a common representation to which all Java syntax graphs must adhere. We also present the systematic approach that is being taken to generate syntax graphs from Java code. Since the type graph model is comprehensive, i.e., covers the whole language specification, the technique is guaranteed to generate a corresponding graph for any valid Java program. In particular, we want to extract such syntax graphs in order to perform static analysis and model checking of programs written in Java. Although we focus on Java, this same approach could be adapted for other programming languages.
منابع مشابه
Debugging With an Enriched Dependency-based Model or How to Distinguish Between Aliasing and Value Assignment
This paper introduces a new model for debugging of Java programs. This model is based on previous functional dependency models that have been developed for the same purpose. In contrast the model makes not only use of dependency information but also of aliasing information. Therefore, the results are better for a large class of examples. The model is basically a qualitative model where values o...
متن کاملCork: Dynamic Memory Leak Detection for Java
Despite all the benefits of garbage collection, memory leaks remain a problem for Java programs. A memory leak in Java occurs when a program inadvertently maintains references to objects that it no longer needs, preventing the garbage collector from reclaiming space. At best, leaks degrade performance. At worst, they cause programs to run out of memory and crash. Small continuous leaks in long-...
متن کاملTwo NP-Complete Problems in Software Security
A secure programming environment must offer protection mechanisms for regulating the interaction between mutually suspicious code units. Discretionary Capability Confinement (DCC) is a static type system recently proposed for expressing and enforcing access control policies in Java programs. This paper considers the computational complexity of the type reconstruction problem for DCC, that is, t...
متن کاملEstablishing Causality as a Desideratum for Memory Models and Transformations of Parallel Programs
In this paper, we establish a notion of causality that should be used as a desideratum for memory models and code transformations of parallel programs. We introduce a Causal Acyclic Consistency (CAC) model which is weak enough to allow various useful code transformations, yet still strong enough to prevent any execution that exhibits “causal cycles” that may be caused by the Java Memory Model (...
متن کاملDependence Analysis for Recursive Java Programs_SIGPlan_...
Dependence analysis is an important approach to analyzing, understanding, testing and maintaining programs. T his paper develops a new kind of dependence analysis method for recursive Java programs. In our method, the program dependence graph (PDG) of a Java program consists of a set of PDGs that are not connected. They interact with each other by dependences among parameters. Thus, t he inter-...
متن کامل